﻿/**********************************************************************
 * @file   OperRenderAttribute.h
 * @brief  渲染属性设置操作器
 * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
 * @date   2025-09-19
 *********************************************************************/

#ifndef _OPERRENDERATTRIBUTE_H__
#define _OPERRENDERATTRIBUTE_H__

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"

namespace ModelOper
{
    /**
     * @brief  渲染属性设置操作器
     * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
     * @date   2025-09-19
     */
    class OperRenderAttribute : public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief  构造函数
         * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
         * @date   2025-09-19
         */
        explicit OperRenderAttribute() = default;
        /**
         * @brief  析构函数
         * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
         * @date   2025-09-19
         */
        virtual ~OperRenderAttribute() = default;
        /**
         * @brief  执行界面操作
         * @return true     执行成功
         * @return false     执行失败
         * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
         * @date   2025-09-19
         */
        virtual bool execGUI() override;
        /**
         * @brief  执行读入操作
         * @return true     执行成功
         * @return false     执行失败
         * @author ZhouZhaoYi (zhouzhaoyi@diso.cn)
         * @date   2025-09-19
         */
        virtual bool execProfession() override;
    };
    Register2FITKOperatorRepo(actionPointVisible, OperRenderAttribute);
    Register2FITKOperatorRepo(actionLineVisible, OperRenderAttribute);
    Register2FITKOperatorRepo(actionGeoVisible, OperRenderAttribute);
    Register2FITKOperatorRepo(actionMeshPointVisible, OperRenderAttribute);
    Register2FITKOperatorRepo(actionMeshLineVisible, OperRenderAttribute);
    Register2FITKOperatorRepo(actionPartVisible, OperRenderAttribute);
}
#endif // !_OPERRENDERATTRIBUTE_H__
